package com.slidingmenu.example; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; public class ExampleListActivity extends PreferenceActivity { private ActivityAdapter mAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle(R.string.app_name); this.addPreferencesFromResource(R.xml.main); // mAdapter = new ActivityAdapter(this); // mAdapter.addInfo("Sliding Title Bar", new Intent(this, SlidingTitleBar.class)); // mAdapter.addInfo("Sliding Content", new Intent(this, SlidingContent.class)); // mAdapter.addInfo("Custom Opening Animation (Zoom)", new Intent(this, CustomZoomAnimation.class)); // mAdapter.addInfo("Custom Opening Animation (Rotate)", new Intent(this, CustomRotateAnimation.class)); setListAdapter(mAdapter); } @Override public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference pref) { Class<?> cls = null; String title = pref.getTitle().toString(); if (title.equals(getString(R.string.properties))) { cls = PropertiesActivity.class; } else if (title.equals(getString(R.string.title_bar_slide))) { cls = SlidingTitleBar.class; } else if (title.equals(getString(R.string.title_bar_content))) { cls = SlidingContent.class; } else if (title.equals(getString(R.string.anim_zoom))) { cls = CustomZoomAnimation.class; } else if (title.equals(getString(R.string.anim_scale))) { cls = CustomScaleAnimation.class; } else if (title.equals(getString(R.string.anim_fold))) { cls = CustomFoldAnimation.class; } else if (title.equals(getString(R.string.anim_slide))) { cls = CustomSlideAnimation.class; } else if (title.equals(getString(R.string.anim_rot))) { cls = CustomRotateAnimation.class; } Intent intent = new Intent(this, cls); startActivity(intent); return true; } @Override public void onListItemClick(ListView l, View v, int position, long id) { ActivityInfo info = mAdapter.getItem(position); startActivity(info.intent); } public class ActivityInfo { public String name; public Intent intent; public ActivityInfo(String name, Intent intent) { this.name = name; this.intent = intent; } } public class ActivityAdapter extends ArrayAdapter<ActivityInfo> { public ActivityAdapter(Context context) { super(context, R.layout.row, R.id.row_title); } public void addInfo(String name, Intent intent) { this.add(new ActivityInfo(name, intent)); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = getLayoutInflater().inflate(R.layout.row, null); } ImageView icon = (ImageView) convertView.findViewById(R.id.row_icon); icon.setVisibility(View.GONE); TextView title = (TextView) convertView.findViewById(R.id.row_title); title.setText(getItem(position).name); return convertView; } } }